send_all_stock_info

Kimi.Huang 6 years ago
parent
commit
e33065e178
5 changed files with 66 additions and 13 deletions
  1. 2 11
      api/stock_views.py
  2. 12 2
      stock/admin.py
  3. 29 0
      stock/migrations/0005_stocksendinfo.py
  4. 11 0
      stock/models.py
  5. 12 0
      utils/stock_utils.py

+ 2 - 11
api/stock_views.py

@@ -4,10 +4,7 @@ from __future__ import division
4 4
 
5 5
 from django.shortcuts import HttpResponse
6 6
 
7
-from stock.models import StockInfo
8
-from utils.redis.connect import r
9
-from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET
10
-from utils.stock_utils import refresh_stock_info, send_stock_info
7
+from utils.stock_utils import refresh_stock_info, send_all_stock_info
11 8
 
12 9
 
13 10
 def refresh_stockinfo(request):
@@ -16,11 +13,5 @@ def refresh_stockinfo(request):
16 13
 
17 14
 
18 15
 def send_stockinfo(request):
19
-    pks = r.smembers(JDJOS_STOCK_CHANGED_SET)
20
-    for pk in pks:
21
-        try:
22
-            stock = StockInfo.objects.get(pk=pk, status=True)
23
-        except StockInfo.DoesNotExist:
24
-            continue
25
-        send_stock_info(stock)
16
+    send_all_stock_info()
26 17
     return HttpResponse('Send Success')

+ 12 - 2
stock/admin.py

@@ -1,11 +1,12 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 from django.contrib import admin
4
-from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin
4
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin, SpecifiedQuantityQuerySetModelAdmin
5 5
 
6
-from stock.models import StockInfo
6
+from stock.models import StockInfo, StockSendInfo
7 7
 from utils.redis.connect import r
8 8
 from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET
9
+from utils.stock_utils import send_all_stock_info
9 10
 
10 11
 
11 12
 class StockInfoAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin):
@@ -19,4 +20,13 @@ class StockInfoAdmin(AdvancedExportExcelModelAdmin, admin.ModelAdmin):
19 20
             r.sadd(JDJOS_STOCK_CHANGED_SET, obj.pk)
20 21
 
21 22
 
23
+class StockSendInfoAdmin(SpecifiedQuantityQuerySetModelAdmin, admin.ModelAdmin):
24
+    list_display = ('pk', 'submit')
25
+    readonly_fields = ('status', )
26
+
27
+    def save_model(self, request, obj, form, change):
28
+        send_all_stock_info()
29
+
30
+
22 31
 admin.site.register(StockInfo, StockInfoAdmin)
32
+admin.site.register(StockSendInfo, StockSendInfoAdmin)

+ 29 - 0
stock/migrations/0005_stocksendinfo.py

@@ -0,0 +1,29 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.20 on 2019-03-04 08:03
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('stock', '0004_auto_20190304_1337'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.CreateModel(
16
+            name='StockSendInfo',
17
+            fields=[
18
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19
+                ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')),
20
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
21
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
22
+                ('submit', models.BooleanField(default=True, help_text='\u786e\u8ba4\u63d0\u4ea4', verbose_name='\u786e\u8ba4\u63d0\u4ea4')),
23
+            ],
24
+            options={
25
+                'verbose_name': 'StockSendInfo',
26
+                'verbose_name_plural': 'StockSendInfo',
27
+            },
28
+        ),
29
+    ]

+ 11 - 0
stock/models.py

@@ -33,3 +33,14 @@ class StockInfo(BaseModelMixin):
33 33
 
34 34
     def __unicode__(self):
35 35
         return u'{0.pk}'.format(self)
36
+
37
+
38
+class StockSendInfo(BaseModelMixin):
39
+    submit = models.BooleanField(_(u'确认提交'), default=True, help_text=_(u'确认提交'))
40
+
41
+    class Meta:
42
+        verbose_name = _(u'StockSendInfo')
43
+        verbose_name_plural = _(u'StockSendInfo')
44
+
45
+    def __unicode__(self):
46
+        return u'{0.pk}'.format(self)

+ 12 - 0
utils/stock_utils.py

@@ -10,6 +10,8 @@ from jd.api.rest.EdiInventorySendRequest import EdiInventorySendRequest
10 10
 from jd.api.rest.VcAplsStockBatchGetProdStockInfoRequest import VcAplsStockBatchGetProdStockInfoRequest
11 11
 from jd.api.rest.VcItemProductsFindRequest import VcItemProductsFindRequest
12 12
 from stock.models import StockInfo
13
+from utils.redis.connect import r
14
+from utils.redis.rkeys import JDJOS_STOCK_CHANGED_SET
13 15
 
14 16
 
15 17
 JOS = settings.JOS['TAMRON']
@@ -89,3 +91,13 @@ def send_stock_info(stock):
89 91
         print(json.dumps(f))
90 92
     except Exception, e:
91 93
         print(e)
94
+
95
+
96
+def send_all_stock_info():
97
+    pks, _ = r.pipeline().smembers(JDJOS_STOCK_CHANGED_SET).delete(JDJOS_STOCK_CHANGED_SET).execute()
98
+    for pk in pks:
99
+        try:
100
+            stock = StockInfo.objects.get(pk=pk, status=True)
101
+        except StockInfo.DoesNotExist:
102
+            continue
103
+        send_stock_info(stock)